#ifndef _CAN_TRANSMIT_QUEUE_
#define _CAN_TRANSMIT_QUEUE_

#define QUEUE_LEN 1280

enum queue_operation_flag
{
	INSERTING,
	DELETING,
	IDLE
};
struct can_transmit_queue
{
	int front;
	int rear;
	int number;
	CanTxMsg data[QUEUE_LEN];
	enum queue_operation_flag operation_flag;
};

int  is_queue_empty(const struct can_transmit_queue * queue_pointer);
void init_queue(struct can_transmit_queue * queue_pointer );
int  insert_queue(struct can_transmit_queue * queue_pointer, CanTxMsg* data); 
int  get_queue_front(const struct can_transmit_queue* queue_pointer,CanTxMsg* data);
int  delet_queue_front(struct can_transmit_queue * queue_pointer);

#endif /* _CAN_TRANSMIT_QUEUE_ */


